/*
MovableObject is an abstract class used to represent something that has a 2 dimensional
velocity and a collision detection method (Player and Particle are derived classes of this)

*/

#ifndef GUARD_MovableObject_h
#define GUARD_MovableObject_h

#include "Vector3.h"
//#include "Platform.h"
#include <vector>
#include "Collidable.h"

class MovableObject : public Collidable
{
protected:
	//float sx,sy,sz; // scaling factors
	//float cw,ch;	// collision dims
	//float offsetY, offsetX; // offsets from collision box

	//Vector3 position;
public:
	float xVel;
	float yVel;

	MovableObject();
	virtual Collidable* checkCollision(const std::vector<Collidable*>& plats);
	//virtual bool checkCollision(const std::vector<Platform>& plats);
	//void setScale(float scaleX, float scaleY, float scaleZ);
	//void setPosition(float x, float y, float z);

	virtual void move(const std::vector<Collidable*>& plats) = 0;
	virtual void onAnimationFinish(int state);
	//virtual void draw() = 0;

	//const Vector3& getPos() const;
};

#endif